const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
   transpileDependencies: true,
   publicPath: '/',               // Default: `'/'` 应用程序包将部署在的基本URL
   outputDir: 'dist',             // Default: `'dist'` 运行“vue cli service build”时生成生产生成文件的目录`
   assetsDir: '',                 // Default: `''` 一个目录（相对于“outputDir”），用于将生成的静态资产（js、css、img、字体）嵌套在
   indexPath: 'index.html',       // Default: `'index.html'` 指定生成的“索引”的输出路径。html`（相对于'outputDir`）。也可以是绝对路径
   filenameHashing: true,         // Default: `true` 默认情况下，生成的静态资产在其文件名中包含哈希，以便更好地进行缓存控制
   runtimeCompiler: false,        // Default: `false`  是否使用包含运行时编译器的Vue核心构建
   transpileDependencies: false,  // Default: `false`  如果设置为“true”，则“node_modules”中的所有依赖项都将由Babel传输；或者，如果您只想选择性地传输某些依赖项，可以在此选项中列出它们。
   productionSourceMap: false,    // Default: `true` 如果生产不需要源映射，将其设置为“false”可以加快生产构建
  //  parallel?: boolean | Number,   //Default: `require('os').cpus().length > 1`  是使用“线程加载器”进行Babel还是TypeScript透明
   devServer: {                   // 配置跨域代理服务
    proxy: {
      '/api': {
        target: 'http://localhost:8080',
        changeOrigin: true, 
        pathRewrite: {
          '^/api': ''
        } 
      }
    }
   },
  //  pages: {                    Default: `undefined`  以多页面模式构建应用程序
  //    [key]: PageEntry | PageConfig,
  //  },
  //  crossorigin: '', // '' | 'anonymous' | 'use-credentials' Default: `undefined`  在生成的HTML中的`<link rel=“stylesheet”>`和`<script>`标记上配置“crossorigin”属性
   integrity: false, // Default: `false` 设置为“true”以启用[子资源完整性](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)（SRI）在生成的HTML中的`<link rel=“stylesheet”>`和`<script>`标记上
  //  css: CSSOptions,
 
  //  chainWebpack: (config: ChainableWebpackConfig) => void, // 一个函数，将接收由[webpack chain]支持的“ChainableConfig”实例(https://github.com/mozilla-neutrino/webpack-chain)
  //  configureWebpack?: WebpackOptions | ((config: WebpackOptions) => (WebpackOptions | void)), // 设置网页包配置。如果值为“Object”，则将合并到配置中。如果值为“Function”，则将接收当前配置作为参数
   lintOnSave: false, //false | 'default' | 'warning' | 'error' Default: `'default'` 在使用[eslint-loader]开发期间是否对save执行lint(https://github.com/webpack-contrib/eslint-loader)
  //  pwa: object, // 将选项传递给[PWA插件](https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-插件（pwa）
 
   // 设置简洁的webpack插件、缩小和简洁选项
  //  terser: {
  //    /**
  //     * 支持缩小：
  //     *   [简洁](https://github.com/webpack-contrib/terser-webpack-plugin#minify)，
  //     *   [esbuild](https://github.com/webpack-contrib/terser-webpack-plugin#esbuild)，
  //     *   [swc](https://github.com/webpack-contrib/terser-webpack-plugin#swc)，
  //     *   [uglifyJs](https://github.com/webpack-contrib/terser-webpack-plugin#uglify-js）
  //     * 目前，我们不允许自定义缩小功能
  //     * 在非简洁的情况下，您应该安装相应的软件包（例如，`npm i esbuild-D'）
  //     */
  //    minify: 'terser' | 'esbuild' | 'swc' | 'uglifyJs',
  //    /**
  //     * `terserOptions选项将传递给minify
  //     *
  //     * [所有“简洁”选项](https://github.com/webpack-contrib/terser-webpack-plugin#terseroptions)
  //     *
  //     * [所有“esbuild”选项](https://github.com/evanw/esbuild/blob/master/lib/shared/types.ts#L160-L174)
  //     *
  //     * [“swc”的所有选项`](https://swc.rs/docs/config-js-minify)
  //     *
  //     * [“uglifyJs”的所有选项`](https://github.com/mishoo/UglifyJS#minify-options)
  //     */
  //   //  terserOptions: PredefinedOptions<import("terser").MinifyOptions>,
  //  },
 
   /**
    * 这是一个不经过任何模式验证的对象，因此可以使用它将任意选项传递给第三方插件
    */
  //  pluginOptions: object,
})
